import requests

headers={
    "contentType":"application/json"
}

# 这里的四个参数分别是:
# name 服务的名称 id 服务的id(服务的标识) address 服务的ip地址 port 服务暴露的端口
# url 这里要填的是consul 注册服务的Url地址 需要启动consul
# http://192.168.229.5:8500 consul启动的ip地址 
# /v1/agent/service/register 注册的地址 v1需要注意 这个在consul的接口文档中没有 需要加上
# 将服务注册到注册中心 使用可以发送HTTP请求的就行 这里需要注意的是 注册的请求 得是PUT请求
# 这里headers用于指定请求的格式 使用json格式
# Tags 指定 服务的Tag
def register(name,id,address,port):
    url="http://192.168.229.5:8500/v1/agent/service/register"
    rsp=requests.put(url,headers=headers,json={
        "Name":name,
        "ID":id,
        "Tags":["mxshop","bobby","imooc","web"],
        "Address":address,
        "port":port
    })
    if rsp.status_code==200:
        print("注册成功")
    else:
        print(f"注册失败:{rsp.status_code}")

# 之前这种注册 是个假的健康检查
# 如果需要真健康检查 需要设置一下
# 如何注销服务
# 注销和注册的url有点不一样
# 注销的是deregister 注册时register
# 另外注销url最后需要跟上 服务的id
def deregister(id):
    url=f"http://192.168.229.5:8500/v1/agent/service/deregister/{id}"
    rsp=requests.put(url,headers=headers)
    if rsp.status_code==200:
        print("注销成功")
    else:
        print(f"注销失败:{rsp.status_code}")

if __name__=="__main__":
    # register("mshop-web","mxshop","127.0.0.1",50051)
    deregister("mxshop")